@codeyam/codeyam-cli 0.1.11 → 0.1.12

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (200) hide show
  1. package/analyzer-template/.build-info.json +8 -8
  2. package/analyzer-template/log.txt +3 -3
  3. package/analyzer-template/package.json +2 -2
  4. package/analyzer-template/packages/ai/package.json +1 -1
  5. package/analyzer-template/packages/aws/package.json +1 -1
  6. package/analyzer-template/packages/database/package.json +1 -1
  7. package/analyzer-template/packages/database/src/lib/kysely/tables/editorScenariosTable.ts +42 -16
  8. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/editorScenariosTable.d.ts +3 -1
  9. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/editorScenariosTable.d.ts.map +1 -1
  10. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/editorScenariosTable.js +44 -16
  11. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/editorScenariosTable.js.map +1 -1
  12. package/codeyam-cli/src/commands/__tests__/editor.stepDispatch.test.js +11 -0
  13. package/codeyam-cli/src/commands/__tests__/editor.stepDispatch.test.js.map +1 -1
  14. package/codeyam-cli/src/commands/editor.js +1214 -217
  15. package/codeyam-cli/src/commands/editor.js.map +1 -1
  16. package/codeyam-cli/src/utils/__tests__/editorAudit.test.js +893 -1
  17. package/codeyam-cli/src/utils/__tests__/editorAudit.test.js.map +1 -1
  18. package/codeyam-cli/src/utils/__tests__/editorBroadcastViewport.test.js +76 -0
  19. package/codeyam-cli/src/utils/__tests__/editorBroadcastViewport.test.js.map +1 -0
  20. package/codeyam-cli/src/utils/__tests__/editorDeleteScenario.test.js +100 -0
  21. package/codeyam-cli/src/utils/__tests__/editorDeleteScenario.test.js.map +1 -0
  22. package/codeyam-cli/src/utils/__tests__/editorEntityChangeStatus.test.js +6 -3
  23. package/codeyam-cli/src/utils/__tests__/editorEntityChangeStatus.test.js.map +1 -1
  24. package/codeyam-cli/src/utils/__tests__/editorEntityHelpers.test.js +261 -0
  25. package/codeyam-cli/src/utils/__tests__/editorEntityHelpers.test.js.map +1 -0
  26. package/codeyam-cli/src/utils/__tests__/editorLoaderHelpers.test.js +75 -1
  27. package/codeyam-cli/src/utils/__tests__/editorLoaderHelpers.test.js.map +1 -1
  28. package/codeyam-cli/src/utils/__tests__/editorMigration.test.js +435 -0
  29. package/codeyam-cli/src/utils/__tests__/editorMigration.test.js.map +1 -0
  30. package/codeyam-cli/src/utils/__tests__/editorScenarios.test.js +441 -17
  31. package/codeyam-cli/src/utils/__tests__/editorScenarios.test.js.map +1 -1
  32. package/codeyam-cli/src/utils/__tests__/editorSeedAdapter.test.js +67 -0
  33. package/codeyam-cli/src/utils/__tests__/editorSeedAdapter.test.js.map +1 -1
  34. package/codeyam-cli/src/utils/__tests__/editorSeedAdapterPrismaValidation.test.js +143 -0
  35. package/codeyam-cli/src/utils/__tests__/editorSeedAdapterPrismaValidation.test.js.map +1 -0
  36. package/codeyam-cli/src/utils/__tests__/editorSessionFilter.test.js +66 -0
  37. package/codeyam-cli/src/utils/__tests__/editorSessionFilter.test.js.map +1 -0
  38. package/codeyam-cli/src/utils/__tests__/editorShouldRevalidate.test.js +53 -0
  39. package/codeyam-cli/src/utils/__tests__/editorShouldRevalidate.test.js.map +1 -0
  40. package/codeyam-cli/src/utils/__tests__/entityChangeStatus.test.js +67 -9
  41. package/codeyam-cli/src/utils/__tests__/entityChangeStatus.test.js.map +1 -1
  42. package/codeyam-cli/src/utils/__tests__/routePatternMatching.test.js +118 -0
  43. package/codeyam-cli/src/utils/__tests__/routePatternMatching.test.js.map +1 -0
  44. package/codeyam-cli/src/utils/__tests__/scenariosManifest.test.js +40 -1
  45. package/codeyam-cli/src/utils/__tests__/scenariosManifest.test.js.map +1 -1
  46. package/codeyam-cli/src/utils/analysisRunner.js +3 -1
  47. package/codeyam-cli/src/utils/analysisRunner.js.map +1 -1
  48. package/codeyam-cli/src/utils/editorAudit.js +145 -0
  49. package/codeyam-cli/src/utils/editorAudit.js.map +1 -1
  50. package/codeyam-cli/src/utils/editorBroadcastViewport.js +26 -0
  51. package/codeyam-cli/src/utils/editorBroadcastViewport.js.map +1 -0
  52. package/codeyam-cli/src/utils/editorDeleteScenario.js +67 -0
  53. package/codeyam-cli/src/utils/editorDeleteScenario.js.map +1 -0
  54. package/codeyam-cli/src/utils/editorEntityChangeStatus.js +1 -1
  55. package/codeyam-cli/src/utils/editorEntityChangeStatus.js.map +1 -1
  56. package/codeyam-cli/src/utils/editorEntityHelpers.js +129 -0
  57. package/codeyam-cli/src/utils/editorEntityHelpers.js.map +1 -0
  58. package/codeyam-cli/src/utils/editorLoaderHelpers.js +40 -1
  59. package/codeyam-cli/src/utils/editorLoaderHelpers.js.map +1 -1
  60. package/codeyam-cli/src/utils/editorMigration.js +224 -0
  61. package/codeyam-cli/src/utils/editorMigration.js.map +1 -0
  62. package/codeyam-cli/src/utils/editorScenarios.js +163 -2
  63. package/codeyam-cli/src/utils/editorScenarios.js.map +1 -1
  64. package/codeyam-cli/src/utils/editorSeedAdapter.js +253 -4
  65. package/codeyam-cli/src/utils/editorSeedAdapter.js.map +1 -1
  66. package/codeyam-cli/src/utils/editorShouldRevalidate.js +21 -0
  67. package/codeyam-cli/src/utils/editorShouldRevalidate.js.map +1 -0
  68. package/codeyam-cli/src/utils/entityChangeStatus.js +19 -2
  69. package/codeyam-cli/src/utils/entityChangeStatus.js.map +1 -1
  70. package/codeyam-cli/src/utils/entityChangeStatus.server.js +7 -3
  71. package/codeyam-cli/src/utils/entityChangeStatus.server.js.map +1 -1
  72. package/codeyam-cli/src/utils/fileWatcher.js +38 -0
  73. package/codeyam-cli/src/utils/fileWatcher.js.map +1 -1
  74. package/codeyam-cli/src/utils/install-skills.js +9 -0
  75. package/codeyam-cli/src/utils/install-skills.js.map +1 -1
  76. package/codeyam-cli/src/utils/routePatternMatching.js +129 -0
  77. package/codeyam-cli/src/utils/routePatternMatching.js.map +1 -0
  78. package/codeyam-cli/src/utils/scenarioCoverage.js +8 -9
  79. package/codeyam-cli/src/utils/scenarioCoverage.js.map +1 -1
  80. package/codeyam-cli/src/utils/scenariosManifest.js +18 -10
  81. package/codeyam-cli/src/utils/scenariosManifest.js.map +1 -1
  82. package/codeyam-cli/src/webserver/__tests__/buildPtyEnv.test.js +35 -0
  83. package/codeyam-cli/src/webserver/__tests__/buildPtyEnv.test.js.map +1 -0
  84. package/codeyam-cli/src/webserver/__tests__/editorProxy.test.js +33 -0
  85. package/codeyam-cli/src/webserver/__tests__/editorProxy.test.js.map +1 -1
  86. package/codeyam-cli/src/webserver/app/types/editor.js +8 -0
  87. package/codeyam-cli/src/webserver/app/types/editor.js.map +1 -0
  88. package/codeyam-cli/src/webserver/backgroundServer.js +18 -4
  89. package/codeyam-cli/src/webserver/backgroundServer.js.map +1 -1
  90. package/codeyam-cli/src/webserver/build/client/assets/CopyButton-CzTDWkF2.js +1 -0
  91. package/codeyam-cli/src/webserver/build/client/assets/{EntityItem-BcgbViKV.js → EntityItem-BFbq6iFk.js} +3 -3
  92. package/codeyam-cli/src/webserver/build/client/assets/EntityTypeBadge-CQgyEGV-.js +1 -0
  93. package/codeyam-cli/src/webserver/build/client/assets/{EntityTypeIcon-CQIG2qda.js → EntityTypeIcon-B6OMi58N.js} +1 -1
  94. package/codeyam-cli/src/webserver/build/client/assets/InlineSpinner-DuYodzo1.js +1 -0
  95. package/codeyam-cli/src/webserver/build/client/assets/InteractivePreview-CXo9EeCl.js +25 -0
  96. package/codeyam-cli/src/webserver/build/client/assets/LibraryFunctionPreview-DYCNb2It.js +3 -0
  97. package/codeyam-cli/src/webserver/build/client/assets/{LoadingDots-BU_OAEMP.js → LoadingDots-By5zI316.js} +1 -1
  98. package/codeyam-cli/src/webserver/build/client/assets/{LogViewer-ceAyBX-H.js → LogViewer-CZgY3sxX.js} +3 -3
  99. package/codeyam-cli/src/webserver/build/client/assets/{ReportIssueModal-BzHcG7SE.js → ReportIssueModal-CnYYwRDw.js} +2 -2
  100. package/codeyam-cli/src/webserver/build/client/assets/SafeScreenshot-CDoF7ZpU.js +1 -0
  101. package/codeyam-cli/src/webserver/build/client/assets/{ScenarioViewer-TSD3C211.js → ScenarioViewer-DrnfvaLL.js} +3 -3
  102. package/codeyam-cli/src/webserver/build/client/assets/Spinner-Df3UCi8k.js +34 -0
  103. package/codeyam-cli/src/webserver/build/client/assets/TruncatedFilePath-CK7-NaPZ.js +1 -0
  104. package/codeyam-cli/src/webserver/build/client/assets/ViewportInspectBar-DRKR9T0U.js +1 -0
  105. package/codeyam-cli/src/webserver/build/client/assets/{_index-DLxKhri3.js → _index-ClR-g3tY.js} +2 -2
  106. package/codeyam-cli/src/webserver/build/client/assets/{activity.(_tab)-BcY3q6nt.js → activity.(_tab)-DTH6ydEA.js} +3 -3
  107. package/codeyam-cli/src/webserver/build/client/assets/{addon-web-links-Duc5hnl7.js → addon-web-links-74hnHF59.js} +1 -1
  108. package/codeyam-cli/src/webserver/build/client/assets/{agent-transcripts-Bni3iiUj.js → agent-transcripts-B8CYhCO9.js} +3 -3
  109. package/codeyam-cli/src/webserver/build/client/assets/api.editor-rename-scenario-l0sNRNKZ.js +1 -0
  110. package/codeyam-cli/src/webserver/build/client/assets/api.editor-save-seed-state-l0sNRNKZ.js +1 -0
  111. package/codeyam-cli/src/webserver/build/client/assets/api.editor-scenario-prompt-l0sNRNKZ.js +1 -0
  112. package/codeyam-cli/src/webserver/build/client/assets/{book-open-BYOypzCa.js → book-open-CLaoh4ac.js} +1 -1
  113. package/codeyam-cli/src/webserver/build/client/assets/{chevron-down-C_Pmso5S.js → chevron-down-BZ2DZxbW.js} +1 -1
  114. package/codeyam-cli/src/webserver/build/client/assets/{chunk-JZWAC4HX-C4pqxYJB.js → chunk-JZWAC4HX-BBXArFPl.js} +13 -21
  115. package/codeyam-cli/src/webserver/build/client/assets/{circle-check-BVMi9VA5.js → circle-check-CT4unAk-.js} +1 -1
  116. package/codeyam-cli/src/webserver/build/client/assets/{copy-n2FB0_Sw.js → copy-zK0B6Nu-.js} +1 -1
  117. package/codeyam-cli/src/webserver/build/client/assets/{createLucideIcon-CC6AbExI.js → createLucideIcon-DJB0YQJL.js} +1 -1
  118. package/codeyam-cli/src/webserver/build/client/assets/dev.empty-CkXFP_i-.js +1 -0
  119. package/codeyam-cli/src/webserver/build/client/assets/editor._tab-DPw7NZHc.js +1 -0
  120. package/codeyam-cli/src/webserver/build/client/assets/editor.entity.(_sha)-DmBK1JBK.js +58 -0
  121. package/codeyam-cli/src/webserver/build/client/assets/editorPreview-DBa7T2FK.js +41 -0
  122. package/codeyam-cli/src/webserver/build/client/assets/{entity._sha._-DwCV5__E.js → entity._sha._-BqAN7hyG.js} +2 -2
  123. package/codeyam-cli/src/webserver/build/client/assets/entity._sha.scenarios._scenarioId.dev-BOi8kpwd.js +6 -0
  124. package/codeyam-cli/src/webserver/build/client/assets/entity._sha.scenarios._scenarioId.fullscreen-Dg1NhIms.js +6 -0
  125. package/codeyam-cli/src/webserver/build/client/assets/entity._sha_.create-scenario-CJX6kkkV.js +6 -0
  126. package/codeyam-cli/src/webserver/build/client/assets/{entity._sha_.edit._scenarioId-BMvVHNXU.js → entity._sha_.edit._scenarioId-BhVjZhKg.js} +2 -2
  127. package/codeyam-cli/src/webserver/build/client/assets/{entry.client-DTvKq3TY.js → entry.client-_gzKltPN.js} +6 -6
  128. package/codeyam-cli/src/webserver/build/client/assets/fileTableUtils-Daa96Fr1.js +1 -0
  129. package/codeyam-cli/src/webserver/build/client/assets/files-CV_17tZS.js +1 -0
  130. package/codeyam-cli/src/webserver/build/client/assets/git-D-YXmMbR.js +1 -0
  131. package/codeyam-cli/src/webserver/build/client/assets/globals-CGrDAxj0.css +1 -0
  132. package/codeyam-cli/src/webserver/build/client/assets/{index-yHOVb4rc.js → index-Blo6EK8G.js} +1 -1
  133. package/codeyam-cli/src/webserver/build/client/assets/{index-10oVnAAH.js → index-BsX0F-9C.js} +1 -1
  134. package/codeyam-cli/src/webserver/build/client/assets/{index-BcvgDzbZ.js → index-CCrgCshv.js} +1 -1
  135. package/codeyam-cli/src/webserver/build/client/assets/jsx-runtime-D_zvdyIk.js +9 -0
  136. package/codeyam-cli/src/webserver/build/client/assets/labs-Byazq8Pv.js +1 -0
  137. package/codeyam-cli/src/webserver/build/client/assets/{loader-circle-DaAZ_H2w.js → loader-circle-DVQ0oHR7.js} +1 -1
  138. package/codeyam-cli/src/webserver/build/client/assets/manifest-b3f77062.js +1 -0
  139. package/codeyam-cli/src/webserver/build/client/assets/{memory-9gnxSZlb.js → memory-b-VmA2Vj.js} +2 -2
  140. package/codeyam-cli/src/webserver/build/client/assets/{pause-f5-1lKBt.js → pause-DGcndCAa.js} +1 -1
  141. package/codeyam-cli/src/webserver/build/client/assets/{root-DBjt6o04.js → root-D5Zi3U2Z.js} +5 -5
  142. package/codeyam-cli/src/webserver/build/client/assets/{search-Di64LWVb.js → search-C0Uw0bcK.js} +1 -1
  143. package/codeyam-cli/src/webserver/build/client/assets/settings-OoNgHIfW.js +1 -0
  144. package/codeyam-cli/src/webserver/build/client/assets/simulations-Bcemfu8a.js +1 -0
  145. package/codeyam-cli/src/webserver/build/client/assets/{terminal-Br7MOqts.js → terminal-BgMmG7R9.js} +1 -1
  146. package/codeyam-cli/src/webserver/build/client/assets/{triangle-alert-BLdiCuG-.js → triangle-alert-Cs87hJYK.js} +1 -1
  147. package/codeyam-cli/src/webserver/build/client/assets/useCustomSizes-BR3Rs7JY.js +1 -0
  148. package/codeyam-cli/src/webserver/build/client/assets/{useLastLogLine-C14nCb1q.js → useLastLogLine-BxxP_XF9.js} +1 -1
  149. package/codeyam-cli/src/webserver/build/client/assets/useReportContext-BermyNU5.js +1 -0
  150. package/codeyam-cli/src/webserver/build/client/assets/useToast-a_QN_W9_.js +1 -0
  151. package/codeyam-cli/src/webserver/build/server/assets/analysisRunner-yTyb36j3.js +13 -0
  152. package/codeyam-cli/src/webserver/build/server/assets/{index-DsZjKspK.js → index-Cr7d_IsG.js} +1 -1
  153. package/codeyam-cli/src/webserver/build/server/assets/init-M_wqNAfu.js +10 -0
  154. package/codeyam-cli/src/webserver/build/server/assets/progress-CHTtrxFG.js +1 -0
  155. package/codeyam-cli/src/webserver/build/server/assets/server-build-_ybRgrlc.js +551 -0
  156. package/codeyam-cli/src/webserver/build/server/index.js +1 -1
  157. package/codeyam-cli/src/webserver/build-info.json +5 -5
  158. package/codeyam-cli/src/webserver/editorProxy.js +93 -11
  159. package/codeyam-cli/src/webserver/editorProxy.js.map +1 -1
  160. package/codeyam-cli/src/webserver/mockStateEvents.js +28 -0
  161. package/codeyam-cli/src/webserver/mockStateEvents.js.map +1 -0
  162. package/codeyam-cli/src/webserver/server.js +9 -0
  163. package/codeyam-cli/src/webserver/server.js.map +1 -1
  164. package/codeyam-cli/src/webserver/terminalServer.js +74 -8
  165. package/codeyam-cli/src/webserver/terminalServer.js.map +1 -1
  166. package/codeyam-cli/templates/editor-step-hook.py +104 -20
  167. package/codeyam-cli/templates/nextjs-prisma-sqlite/seed-adapter.ts +42 -7
  168. package/codeyam-cli/templates/seed-adapters/supabase.ts +282 -0
  169. package/codeyam-cli/templates/skills/codeyam-editor/SKILL.md +62 -0
  170. package/package.json +1 -1
  171. package/packages/database/src/lib/kysely/tables/editorScenariosTable.js +44 -16
  172. package/packages/database/src/lib/kysely/tables/editorScenariosTable.js.map +1 -1
  173. package/codeyam-cli/src/webserver/build/client/assets/CopyButton-BPXZwM4t.js +0 -1
  174. package/codeyam-cli/src/webserver/build/client/assets/EntityTypeBadge-g3saevPb.js +0 -1
  175. package/codeyam-cli/src/webserver/build/client/assets/InlineSpinner-Bu6c6aDe.js +0 -1
  176. package/codeyam-cli/src/webserver/build/client/assets/InteractivePreview-DYFW3lDD.js +0 -25
  177. package/codeyam-cli/src/webserver/build/client/assets/LibraryFunctionPreview-DLeucoVX.js +0 -3
  178. package/codeyam-cli/src/webserver/build/client/assets/SafeScreenshot-BED4B6sP.js +0 -1
  179. package/codeyam-cli/src/webserver/build/client/assets/Spinner-Bb5uFQ5V.js +0 -34
  180. package/codeyam-cli/src/webserver/build/client/assets/TruncatedFilePath-C8OKAR5x.js +0 -1
  181. package/codeyam-cli/src/webserver/build/client/assets/ViewportInspectBar-oAf2Kqsf.js +0 -1
  182. package/codeyam-cli/src/webserver/build/client/assets/dev.empty-Ii3inc0_.js +0 -1
  183. package/codeyam-cli/src/webserver/build/client/assets/editor-16o0AIFV.js +0 -15
  184. package/codeyam-cli/src/webserver/build/client/assets/editorPreview-7Uga8I59.js +0 -41
  185. package/codeyam-cli/src/webserver/build/client/assets/entity._sha.scenarios._scenarioId.dev-BwKcai0j.js +0 -6
  186. package/codeyam-cli/src/webserver/build/client/assets/entity._sha.scenarios._scenarioId.fullscreen-CHMiAog3.js +0 -6
  187. package/codeyam-cli/src/webserver/build/client/assets/entity._sha_.create-scenario-p9hhkjJM.js +0 -6
  188. package/codeyam-cli/src/webserver/build/client/assets/fileTableUtils-cPo8LiG3.js +0 -1
  189. package/codeyam-cli/src/webserver/build/client/assets/files-BZrlFE1F.js +0 -1
  190. package/codeyam-cli/src/webserver/build/client/assets/git-DdZcvjGh.js +0 -1
  191. package/codeyam-cli/src/webserver/build/client/assets/globals-CQPR0pFR.css +0 -1
  192. package/codeyam-cli/src/webserver/build/client/assets/labs-Zk7ryIM1.js +0 -1
  193. package/codeyam-cli/src/webserver/build/client/assets/manifest-76e7b62c.js +0 -1
  194. package/codeyam-cli/src/webserver/build/client/assets/settings-0OrEMU6J.js +0 -1
  195. package/codeyam-cli/src/webserver/build/client/assets/simulations-DWT-CvLy.js +0 -1
  196. package/codeyam-cli/src/webserver/build/client/assets/useCustomSizes-C-_hOl_g.js +0 -1
  197. package/codeyam-cli/src/webserver/build/client/assets/useReportContext-O-jkvSPx.js +0 -1
  198. package/codeyam-cli/src/webserver/build/client/assets/useToast-9FIWuYfK.js +0 -1
  199. package/codeyam-cli/src/webserver/build/server/assets/init-DdqKD2p4.js +0 -10
  200. package/codeyam-cli/src/webserver/build/server/assets/server-build-CKKeWtVK.js +0 -444
@@ -1,10 +1,10 @@
1
1
  {
2
- "buildTimestamp": "2026-03-13T21:46:00.717Z",
3
- "buildTime": 1773438360717,
4
- "gitCommit": "afcd8c8e64b05a28a49e8116967477871e59cbec",
5
- "nodeVersion": "v20.20.0",
6
- "contentHash": "68aada52a9e636008fb2f4fffc504ee4b3e09bd06eacbf40d008b536dcb9018b",
7
- "buildNumber": 988,
8
- "semanticVersion": "0.1.988",
9
- "version": "0.1.988 (2026-03-13T21:46+68aada5)"
2
+ "buildTimestamp": "2026-03-17T15:17:00.245Z",
3
+ "buildTime": 1773760620245,
4
+ "gitCommit": "b282daf6fc6409b6a9facc3666589360a160dc1d",
5
+ "nodeVersion": "v20.20.1",
6
+ "contentHash": "b046e014847d5b02d10d6795839ccd0d5117627cbd0be413260824610596a63d",
7
+ "buildNumber": 1071,
8
+ "semanticVersion": "0.1.1071",
9
+ "version": "0.1.1071 (2026-03-17T15:17+b046e01)"
10
10
  }
@@ -1,7 +1,7 @@
1
1
 
2
- [3/13/2026, 9:46:00 PM] > codeyam-combo@1.0.0 mergeDependencies
3
- [3/13/2026, 9:46:00 PM] > node ./scripts/mergePackageJsonFiles.cjs
2
+ [3/17/2026, 3:17:00 PM] > codeyam-combo@1.0.0 mergeDependencies
3
+ [3/17/2026, 3:17:00 PM] > node ./scripts/mergePackageJsonFiles.cjs
4
4
 
5
5
 
6
- [3/13/2026, 9:46:00 PM] Merged dependencies into root package.json
6
+ [3/17/2026, 3:17:00 PM] Merged dependencies into root package.json
7
7
 
@@ -30,7 +30,7 @@
30
30
  "jest": "^30.2.0",
31
31
  "jsdom": "^27.4.0",
32
32
  "jsonc-parser": "^3.2.1",
33
- "lru-cache": "^11.2.5",
33
+ "lru-cache": "^11.2.7",
34
34
  "openai": "^6.16.0",
35
35
  "p-queue": "^9.1.0",
36
36
  "p-retry": "^7.1.1",
@@ -49,7 +49,7 @@
49
49
  "better-sqlite3": "^12.6.2",
50
50
  "fetch-retry": "^6.0.0",
51
51
  "kysely": "^0.28.11",
52
- "pg": "^8.19.0",
52
+ "pg": "^8.20.0",
53
53
  "@octokit/request": "^10.0.3",
54
54
  "lucide-react": "^0.577.0",
55
55
  "react-resizable": "^3.0.5"
@@ -14,7 +14,7 @@
14
14
  "p-queue": "^9.1.0",
15
15
  "p-retry": "^7.1.1",
16
16
  "piscina": "^5.1.4",
17
- "lru-cache": "^11.2.5"
17
+ "lru-cache": "^11.2.7"
18
18
  },
19
19
  "devDependencies": {
20
20
  "@types/jsdom": "^27.0.0"
@@ -15,7 +15,7 @@
15
15
  "@aws-sdk/client-cloudwatch-logs": "^3.990.0",
16
16
  "@aws-sdk/client-dynamodb": "^3.990.0",
17
17
  "@aws-sdk/client-ecr": "^3.990.0",
18
- "@aws-sdk/client-ecs": "^3.1004.0",
18
+ "@aws-sdk/client-ecs": "^3.1009.0",
19
19
  "@aws-sdk/client-s3": "^3.990.0",
20
20
  "@aws-sdk/client-sqs": "^3.990.0",
21
21
  "@aws-sdk/lib-storage": "^3.990.0",
@@ -16,7 +16,7 @@
16
16
  "better-sqlite3": "^12.6.2",
17
17
  "fetch-retry": "^6.0.0",
18
18
  "kysely": "^0.28.11",
19
- "pg": "^8.19.0"
19
+ "pg": "^8.20.0"
20
20
  },
21
21
  "jest": {
22
22
  "preset": "ts-jest",
@@ -15,9 +15,11 @@ const editorScenariosSchema = {
15
15
  screenshot_path: schemaField<string | null>(),
16
16
  viewport_width: schemaField<number | null>(),
17
17
  viewport_height: schemaField<number | null>(),
18
- dimension: schemaField<string | null>(),
19
18
  dimensions: schemaField<string | null>(),
20
19
  screenshot_paths: schemaField<string | null>(),
20
+ page_file_path: schemaField<string | null>(),
21
+ entity_sha: schemaField<string | null>(),
22
+ display_name: schemaField<string | null>(),
21
23
  created_at: schemaField<Generated<string>>(),
22
24
  updated_at: schemaField<Generated<string>>(),
23
25
  } as const;
@@ -83,16 +85,6 @@ export async function createEditorScenariosTable(
83
85
  }
84
86
  }
85
87
 
86
- // Named dimension column (e.g. "Mobile", "Desktop")
87
- try {
88
- await db.schema
89
- .alterTable('editor_scenarios')
90
- .addColumn('dimension', 'varchar')
91
- .execute();
92
- } catch {
93
- // Column already exists — expected for fresh databases
94
- }
95
-
96
88
  // Multi-dimension support: JSON array of dimension names and map of screenshot paths
97
89
  for (const col of ['dimensions', 'screenshot_paths'] as const) {
98
90
  try {
@@ -105,12 +97,27 @@ export async function createEditorScenariosTable(
105
97
  }
106
98
  }
107
99
 
108
- // Backfill: wrap existing single dimension into dimensions array,
109
- // and existing screenshot_path into screenshot_paths object
100
+ // Route tracking: page file path for application scenarios
101
+ // Entity association: SHA links scenario to entity, display_name is the human label
102
+ for (const col of ['page_file_path', 'entity_sha', 'display_name'] as const) {
103
+ try {
104
+ await db.schema
105
+ .alterTable('editor_scenarios')
106
+ .addColumn(col, 'varchar')
107
+ .execute();
108
+ } catch {
109
+ // Column already exists — expected for fresh databases
110
+ }
111
+ }
112
+
113
+ // Legacy backfill: migrate old `dimension` column (single string) into `dimensions`
114
+ // JSON array. Only runs on databases that have the legacy column — new databases
115
+ // won't have it. Separated from the screenshot_paths backfill below so that
116
+ // a missing column doesn't skip both migrations.
110
117
  try {
111
118
  const rows = await db
112
119
  .selectFrom('editor_scenarios')
113
- .select(['id', 'dimension', 'screenshot_path'])
120
+ .select(['id', 'dimension', 'dimensions'] as any)
114
121
  .execute();
115
122
  for (const row of rows) {
116
123
  const r = row as any;
@@ -121,8 +128,27 @@ export async function createEditorScenariosTable(
121
128
  .where('id', '=', r.id)
122
129
  .execute();
123
130
  }
131
+ }
132
+ } catch {
133
+ // Column doesn't exist (new DB) or other error — skip
134
+ }
135
+
136
+ // Backfill: wrap existing single screenshot_path into screenshot_paths object
137
+ try {
138
+ const rows = await db
139
+ .selectFrom('editor_scenarios')
140
+ .select(['id', 'screenshot_path', 'screenshot_paths', 'dimensions'])
141
+ .execute();
142
+ for (const row of rows) {
143
+ const r = row as any;
124
144
  if (r.screenshot_path && !r.screenshot_paths) {
125
- const dimName = r.dimension || 'Default';
145
+ let dimName = 'Default';
146
+ try {
147
+ const dims = r.dimensions ? JSON.parse(r.dimensions) : null;
148
+ if (Array.isArray(dims) && dims.length > 0) dimName = dims[0];
149
+ } catch {
150
+ /* ignore */
151
+ }
126
152
  await db
127
153
  .updateTable('editor_scenarios')
128
154
  .set({
@@ -133,6 +159,6 @@ export async function createEditorScenariosTable(
133
159
  }
134
160
  }
135
161
  } catch {
136
- // Backfill is best-effort — columns may not exist yet on first run
162
+ // Backfill is best-effort
137
163
  }
138
164
  }
@@ -12,9 +12,11 @@ declare const editorScenariosSchema: {
12
12
  readonly screenshot_path: string;
13
13
  readonly viewport_width: number;
14
14
  readonly viewport_height: number;
15
- readonly dimension: string;
16
15
  readonly dimensions: string;
17
16
  readonly screenshot_paths: string;
17
+ readonly page_file_path: string;
18
+ readonly entity_sha: string;
19
+ readonly display_name: string;
18
20
  readonly created_at: Generated<string>;
19
21
  readonly updated_at: Generated<string>;
20
22
  };
@@ -1 +1 @@
1
- {"version":3,"file":"editorScenariosTable.d.ts","sourceRoot":"","sources":["../../../../../../../database/src/lib/kysely/tables/editorScenariosTable.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAA2B,MAAM,QAAQ,CAAC;AACzD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AAIxC,QAAA,MAAM,qBAAqB;;;;;;;;;;;;;;;;;CAiBjB,CAAC;AAEX,MAAM,MAAM,oBAAoB,GAAG;KAChC,CAAC,IAAI,MAAM,OAAO,qBAAqB,GAAG,CAAC,OAAO,qBAAqB,CAAC,CAAC,CAAC,CAAC;CAC7E,CAAC;AAEF,eAAO,MAAM,2BAA2B,EAEnC,CAAC,MAAM,oBAAoB,CAAC,EAAE,CAAC;AAEpC,wBAAsB,0BAA0B,CAC9C,EAAE,EAAE,MAAM,CAAC,GAAG,CAAC,GACd,OAAO,CAAC,IAAI,CAAC,CAuGf"}
1
+ {"version":3,"file":"editorScenariosTable.d.ts","sourceRoot":"","sources":["../../../../../../../database/src/lib/kysely/tables/editorScenariosTable.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAA2B,MAAM,QAAQ,CAAC;AACzD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AAIxC,QAAA,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;CAmBjB,CAAC;AAEX,MAAM,MAAM,oBAAoB,GAAG;KAChC,CAAC,IAAI,MAAM,OAAO,qBAAqB,GAAG,CAAC,OAAO,qBAAqB,CAAC,CAAC,CAAC,CAAC;CAC7E,CAAC;AAEF,eAAO,MAAM,2BAA2B,EAEnC,CAAC,MAAM,oBAAoB,CAAC,EAAE,CAAC;AAEpC,wBAAsB,0BAA0B,CAC9C,EAAE,EAAE,MAAM,CAAC,GAAG,CAAC,GACd,OAAO,CAAC,IAAI,CAAC,CA+Hf"}
@@ -11,9 +11,11 @@ const editorScenariosSchema = {
11
11
  screenshot_path: schemaField(),
12
12
  viewport_width: schemaField(),
13
13
  viewport_height: schemaField(),
14
- dimension: schemaField(),
15
14
  dimensions: schemaField(),
16
15
  screenshot_paths: schemaField(),
16
+ page_file_path: schemaField(),
17
+ entity_sha: schemaField(),
18
+ display_name: schemaField(),
17
19
  created_at: schemaField(),
18
20
  updated_at: schemaField(),
19
21
  };
@@ -64,16 +66,6 @@ export async function createEditorScenariosTable(db) {
64
66
  // Column already exists — expected for fresh databases
65
67
  }
66
68
  }
67
- // Named dimension column (e.g. "Mobile", "Desktop")
68
- try {
69
- await db.schema
70
- .alterTable('editor_scenarios')
71
- .addColumn('dimension', 'varchar')
72
- .execute();
73
- }
74
- catch {
75
- // Column already exists — expected for fresh databases
76
- }
77
69
  // Multi-dimension support: JSON array of dimension names and map of screenshot paths
78
70
  for (const col of ['dimensions', 'screenshot_paths']) {
79
71
  try {
@@ -86,12 +78,27 @@ export async function createEditorScenariosTable(db) {
86
78
  // Column already exists — expected for fresh databases
87
79
  }
88
80
  }
89
- // Backfill: wrap existing single dimension into dimensions array,
90
- // and existing screenshot_path into screenshot_paths object
81
+ // Route tracking: page file path for application scenarios
82
+ // Entity association: SHA links scenario to entity, display_name is the human label
83
+ for (const col of ['page_file_path', 'entity_sha', 'display_name']) {
84
+ try {
85
+ await db.schema
86
+ .alterTable('editor_scenarios')
87
+ .addColumn(col, 'varchar')
88
+ .execute();
89
+ }
90
+ catch {
91
+ // Column already exists — expected for fresh databases
92
+ }
93
+ }
94
+ // Legacy backfill: migrate old `dimension` column (single string) into `dimensions`
95
+ // JSON array. Only runs on databases that have the legacy column — new databases
96
+ // won't have it. Separated from the screenshot_paths backfill below so that
97
+ // a missing column doesn't skip both migrations.
91
98
  try {
92
99
  const rows = await db
93
100
  .selectFrom('editor_scenarios')
94
- .select(['id', 'dimension', 'screenshot_path'])
101
+ .select(['id', 'dimension', 'dimensions'])
95
102
  .execute();
96
103
  for (const row of rows) {
97
104
  const r = row;
@@ -102,8 +109,29 @@ export async function createEditorScenariosTable(db) {
102
109
  .where('id', '=', r.id)
103
110
  .execute();
104
111
  }
112
+ }
113
+ }
114
+ catch {
115
+ // Column doesn't exist (new DB) or other error — skip
116
+ }
117
+ // Backfill: wrap existing single screenshot_path into screenshot_paths object
118
+ try {
119
+ const rows = await db
120
+ .selectFrom('editor_scenarios')
121
+ .select(['id', 'screenshot_path', 'screenshot_paths', 'dimensions'])
122
+ .execute();
123
+ for (const row of rows) {
124
+ const r = row;
105
125
  if (r.screenshot_path && !r.screenshot_paths) {
106
- const dimName = r.dimension || 'Default';
126
+ let dimName = 'Default';
127
+ try {
128
+ const dims = r.dimensions ? JSON.parse(r.dimensions) : null;
129
+ if (Array.isArray(dims) && dims.length > 0)
130
+ dimName = dims[0];
131
+ }
132
+ catch {
133
+ /* ignore */
134
+ }
107
135
  await db
108
136
  .updateTable('editor_scenarios')
109
137
  .set({
@@ -115,7 +143,7 @@ export async function createEditorScenariosTable(db) {
115
143
  }
116
144
  }
117
145
  catch {
118
- // Backfill is best-effort — columns may not exist yet on first run
146
+ // Backfill is best-effort
119
147
  }
120
148
  }
121
149
  //# sourceMappingURL=editorScenariosTable.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"editorScenariosTable.js","sourceRoot":"","sources":["../../../../../../../database/src/lib/kysely/tables/editorScenariosTable.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"editorScenariosTable.js","sourceRoot":"","sources":["../../../../../../../database/src/lib/kysely/tables/editorScenariosTable.ts"],"names":[],"mappings":"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"}
@@ -41,5 +41,16 @@ describe('editor CLI step dispatch', () => {
41
41
  expect(editorSource).toMatch(fnPattern);
42
42
  }
43
43
  });
44
+ it('should include dimension in all preview commands that contain scenarioId', () => {
45
+ // Find all lines that contain a preview command with scenarioId.
46
+ // Every such line must also include "dimension" to avoid Claude getting
47
+ // an error when copying the example command verbatim.
48
+ const lines = editorSource.split('\n');
49
+ const previewWithScenarioId = lines.filter((line) => line.includes('scenarioId') && line.includes('preview'));
50
+ expect(previewWithScenarioId.length).toBeGreaterThan(0);
51
+ for (const line of previewWithScenarioId) {
52
+ expect(line).toContain('dimension');
53
+ }
54
+ });
44
55
  });
45
56
  //# sourceMappingURL=editor.stepDispatch.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"editor.stepDispatch.test.js","sourceRoot":"","sources":["../../../../../src/commands/__tests__/editor.stepDispatch.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,IAAI,MAAM,MAAM,CAAC;AAExB;;;;;;;;;GASG;AACH,QAAQ,CAAC,0BAA0B,EAAE,GAAG,EAAE;IACxC,MAAM,YAAY,GAAG,EAAE,CAAC,YAAY,CAClC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,WAAW,CAAC,EACvC,MAAM,CACP,CAAC;IAEF,EAAE,CAAC,mDAAmD,EAAE,GAAG,EAAE;QAC3D,2DAA2D;QAC3D,kDAAkD;QAClD,kFAAkF;QAClF,qEAAqE;QACrE,EAAE;QACF,8EAA8E;QAE9E,wEAAwE;QACxE,kDAAkD;QAClD,MAAM,WAAW,GAAG,YAAY,CAAC,KAAK,CACpC,2CAA2C,CAC5C,CAAC;QACF,MAAM,CAAC,WAAW,CAAC,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC;QAEnC,MAAM,UAAU,GAAG,WAAY,CAAC,CAAC,CAAC,CAAC;QAEnC,KAAK,IAAI,IAAI,GAAG,CAAC,EAAE,IAAI,IAAI,EAAE,EAAE,IAAI,EAAE,EAAE,CAAC;YACtC,MAAM,WAAW,GAAG,IAAI,MAAM,CAAC,WAAW,IAAI,UAAU,CAAC,CAAC;YAC1D,MAAM,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;QAC1C,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,oDAAoD,EAAE,GAAG,EAAE;QAC5D,KAAK,IAAI,IAAI,GAAG,CAAC,EAAE,IAAI,IAAI,EAAE,EAAE,IAAI,EAAE,EAAE,CAAC;YACtC,MAAM,YAAY,GAAG,IAAI,MAAM,CAAC,GAAG,IAAI,cAAc,CAAC,CAAC;YACvD,MAAM,CAAC,YAAY,CAAC,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;QAC7C,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,4DAA4D,EAAE,GAAG,EAAE;QACpE,KAAK,IAAI,IAAI,GAAG,CAAC,EAAE,IAAI,IAAI,EAAE,EAAE,IAAI,EAAE,EAAE,CAAC;YACtC,MAAM,SAAS,GAAG,IAAI,MAAM,CAAC,wBAAwB,IAAI,SAAS,CAAC,CAAC;YACpE,MAAM,CAAC,YAAY,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;QAC1C,CAAC;IACH,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"editor.stepDispatch.test.js","sourceRoot":"","sources":["../../../../../src/commands/__tests__/editor.stepDispatch.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,IAAI,MAAM,MAAM,CAAC;AAExB;;;;;;;;;GASG;AACH,QAAQ,CAAC,0BAA0B,EAAE,GAAG,EAAE;IACxC,MAAM,YAAY,GAAG,EAAE,CAAC,YAAY,CAClC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,WAAW,CAAC,EACvC,MAAM,CACP,CAAC;IAEF,EAAE,CAAC,mDAAmD,EAAE,GAAG,EAAE;QAC3D,2DAA2D;QAC3D,kDAAkD;QAClD,kFAAkF;QAClF,qEAAqE;QACrE,EAAE;QACF,8EAA8E;QAE9E,wEAAwE;QACxE,kDAAkD;QAClD,MAAM,WAAW,GAAG,YAAY,CAAC,KAAK,CACpC,2CAA2C,CAC5C,CAAC;QACF,MAAM,CAAC,WAAW,CAAC,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC;QAEnC,MAAM,UAAU,GAAG,WAAY,CAAC,CAAC,CAAC,CAAC;QAEnC,KAAK,IAAI,IAAI,GAAG,CAAC,EAAE,IAAI,IAAI,EAAE,EAAE,IAAI,EAAE,EAAE,CAAC;YACtC,MAAM,WAAW,GAAG,IAAI,MAAM,CAAC,WAAW,IAAI,UAAU,CAAC,CAAC;YAC1D,MAAM,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;QAC1C,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,oDAAoD,EAAE,GAAG,EAAE;QAC5D,KAAK,IAAI,IAAI,GAAG,CAAC,EAAE,IAAI,IAAI,EAAE,EAAE,IAAI,EAAE,EAAE,CAAC;YACtC,MAAM,YAAY,GAAG,IAAI,MAAM,CAAC,GAAG,IAAI,cAAc,CAAC,CAAC;YACvD,MAAM,CAAC,YAAY,CAAC,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;QAC7C,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,4DAA4D,EAAE,GAAG,EAAE;QACpE,KAAK,IAAI,IAAI,GAAG,CAAC,EAAE,IAAI,IAAI,EAAE,EAAE,IAAI,EAAE,EAAE,CAAC;YACtC,MAAM,SAAS,GAAG,IAAI,MAAM,CAAC,wBAAwB,IAAI,SAAS,CAAC,CAAC;YACpE,MAAM,CAAC,YAAY,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;QAC1C,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,0EAA0E,EAAE,GAAG,EAAE;QAClF,iEAAiE;QACjE,wEAAwE;QACxE,sDAAsD;QACtD,MAAM,KAAK,GAAG,YAAY,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACvC,MAAM,qBAAqB,GAAG,KAAK,CAAC,MAAM,CACxC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAClE,CAAC;QAEF,MAAM,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;QACxD,KAAK,MAAM,IAAI,IAAI,qBAAqB,EAAE,CAAC;YACzC,MAAM,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;QACtC,CAAC;IACH,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}